<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // class类是什么？ class类是由es6提出来的一种创建实例对象的方法。就是用来代替构造函数。
    // 面向对象编程：

    // function Pleople(name){
    //     // this指向就是构造出来的新的实例对象
    //     this.name = name;
    //     this.age = 18;
    //     this["sex"]='男'
    // }
    // Pleople.prototype.say = function(){
    //     console.log("安徽说")
    // }
    // Pleople.prototype.like = '学习'
    // let p = new Pleople("张三");
    // console.log(p.like)
    // let p1 = new Pleople("李四");
    // console.log(p1)
    // 创建class类 实例属性 类属性 原型属性
    class Pleople {
        // 实例属性
        name='张三';
        id=110;
        // 构造函数
        constructor(name,age,sex){
            // this指向的是当前创建的实例对象
            // console.log(this)
            this.name=name;
            this.age = age;
            this.sex = sex;
        }
        // 原型属性
        say(){
            console.log("我会说")
        }
        like(){
            console.log("我会玩儿")
        }
        // 类属性:实例没有办法调用，只允许创建实例的类来调用
        static job='教师'
        static reslove(){
            console.log("成功")
        }
    }
    
    let p = new Pleople("张三","18","男");
    console.log(p)
    console.log(Pleople.job)
    Pleople.reslove()
    // let p1 = new Promise((resolve,reject)=>{
    //     resolve("嘿嘿");
    // }).then((res)=>{
    //     console.log("成功啦",res)
    // })
    // Promise.resolve("嘿嘿").then((res)=>{
    //     console.log("成功啦",res)
    // })
    
    //class类的继承
    class Dog {
        like='水'
        constructor(name,age,sex){
            this.name= name;
            this.sex = sex;
            this.age = age;
        }
        say(){
            console.log("叫")
        }
        static a(){
            console.log('aaaaa')
        }
    }
    let  dog = new Dog("小花",1,"雌");
    console.log(dog)
    class Cat extends Dog{
        constructor(name,age,sex,eat){
            super(name,age,sex)
            this.eat = eat
        }
    }

    let c = new Cat("大鼻球",2,"雄",'鱼');
    console.log(c)
    Cat.a();
</script>
</html>